package com.example.second.observer;

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

import com.example.second.R;
import com.example.second.observer.classes.SystemClient;
import com.example.second.observer.classes.SystemSubject;

/**
 * 观察者模式
 * 可以简单的理解为 Observable(被观察者) 创建了一个List,里面包含了观察者 (Observer)
 * 当 Observable 发生变化 会遍历调用 Observer 的 update方法完成通知
 */
public class ObserverActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_observer);

        SystemSubject subject = new SystemSubject();
        SystemClient client01 = new SystemClient();
        SystemClient client02 = new SystemClient();
        subject.addObserver(client01);
        subject.addObserver(client02);

        subject.notifyObservers("Hello World.");
        System.out.println("----------");
        subject.notifyObserver(client01, "Hello Observer");
    }
}